/*
key:最长子序列内部元素可以不按序排列但结果一样,肯定不是简单题
    每个x要找x-1和x+1吗，就像最长子序列一样，只要找x+1即可，因为x-1找x+1自然会找到x。
*/
class Solution {
public:

    int findLHS(vector<int>& nums) 
    {
        const int n=nums.size();
        unordered_map<int,int>m;
        for(int i=0;i<n;i++)
        {
            auto g=m.find(nums[i]);
            if(g!=m.end()){g->second++;}
            else{m.insert(pair<int,int>(nums[i],1));}
        }
        int Max1=INT_MIN;
        for(auto&g:m)
        {
            int Max=0;
            auto tmp=m.find(g.first-1);
            if(tmp!=m.end())
            {
                Max=max(Max,tmp->second+g.second);
            }
            Max1=max(Max1,Max);
        }
        return Max1;
    }
};